package br.com.locasis.entity;

// Generated 24/05/2012 20:14:44 by Hibernate Tools 3.4.0.CR1

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Transient;

import org.hibernate.validator.NotNull;

/**
 * Agendamento generated by hbm2java
 */
@Entity
@Table(name = "historico_aluguel")
public class HistoricoAluguel implements java.io.Serializable {
	
	public static final String STATUS_SOLICITADO = "SOLICITADO";
	public static final String STATUS_DEFERIDO = "DEFERIDO";
	public static final String STATUS_INDEFERIDO = "INDEFERIDO";
	public static final String STATUS_REENCAMINHADO = "REENCAMINHADO";
	public static final String STATUS_RESPONDIDO = "RESPONDIDO";

	private Integer idHistoricoAluguel;
	private Aluguel aluguel;
	private Usuario usuarioSolicitante;
	private Usuario usuarioSolicitado;
	private Usuario usuarioAtualizacao;
	private Float vlrDesconto;
	private String justificativa;
	private Boolean flgAtivo;
	private Date dtaHistorico;
	private String status;
	
	@Transient
	private HistoricoAluguel historicoRespondido;
	
	public HistoricoAluguel() {
	}

	@Id
	@Column(name = "id_historico_aluguel", unique = true, nullable = false)
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	public Integer getIdHistoricoAluguel() {
		return idHistoricoAluguel;
	}

	public void setIdHistoricoAluguel(Integer idHistoricoAluguel) {
		this.idHistoricoAluguel = idHistoricoAluguel;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "id_usuario_solicitante", nullable = false)
	@NotNull
	public Usuario getUsuarioSolicitante() {
		return usuarioSolicitante;
	}

	public void setUsuarioSolicitante(Usuario usuarioSolicitante) {
		this.usuarioSolicitante = usuarioSolicitante;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "id_usuario_solicitado", nullable = false)
	@NotNull
	public Usuario getUsuarioSolicitado() {
		return usuarioSolicitado;
	}

	public void setUsuarioSolicitado(Usuario usuarioSolicitado) {
		this.usuarioSolicitado = usuarioSolicitado;
	}

	@Column(name = "vlr_desconto", nullable = true)
	public Float getVlrDesconto() {
		return vlrDesconto;
	}

	public void setVlrDesconto(Float vlrDesconto) {
		this.vlrDesconto = vlrDesconto;
	}

	@Column(name = "justificativa", nullable = false, length = 300)
	public String getJustificativa() {
		return justificativa;
	}

	public void setJustificativa(String justificativa) {
		this.justificativa = justificativa;
	}

	@Column(name = "flg_ativo", nullable = false)
	public Boolean getFlgAtivo() {
		return flgAtivo;
	}
 
	public void setFlgAtivo(Boolean flgAtivo) {
		this.flgAtivo = flgAtivo;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "dta_historico", nullable = false)
	public Date getDtaHistorico() {
		return dtaHistorico;
	}

	public void setDtaHistorico(Date dtaHistorico) {
		this.dtaHistorico = dtaHistorico;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "id_aluguel", nullable = false)
	@NotNull
	public Aluguel getAluguel() {
		return aluguel;
	}

	public void setAluguel(Aluguel aluguel) {
		this.aluguel = aluguel;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "id_usuario_atualizacao", nullable = true)
	public Usuario getUsuarioAtualizacao() {
		return usuarioAtualizacao;
	}

	public void setUsuarioAtualizacao(Usuario usuarioAtualizacao) {
		this.usuarioAtualizacao = usuarioAtualizacao;
	}

	@Column(name = "status", nullable = true)
	public String getStatus() {
		return status;
	}

	public void setStatus(String status) {
		this.status = status;
	}

	@Transient
	public HistoricoAluguel getHistoricoRespondido() {
		return historicoRespondido;
	}

	@Transient
	public void setHistoricoRespondido(HistoricoAluguel historicoRespondido) {
		this.historicoRespondido = historicoRespondido;
	}

}
